home *** CD-ROM | disk | FTP | other *** search
/ Creative Computers / Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso / shareware / fractals / ifslab / ifslab.doc < prev    next >
Text File  |  1994-11-17  |  43KB  |  875 lines

  1. /*******************************************************************\
  2. *                                                                   *
  3. *   IFS Lab - Iterated Function System Encoding/Rendering Program.  *
  4. *                                                                   *
  5. *         Written by Nathan Zeldes, 16 Bet Hakerem St.,             *
  6. *                   Jerusalem 96343, Israel.                        *
  7. *                                                                   *
  8. *    Copyright (C) 1992 by Nathan Zeldes. All Rights Reserved.      *
  9. *                                                                   *
  10. *     PROGRAM DOCUMENTATION     Version 1.0,  June 24, 1992         *
  11. *                                                                   *
  12. *                                                                   *
  13. \*******************************************************************/
  14.  
  15. NOTE:  This program uses the file requester in the freeware requester
  16. library written by C.W. Fox and Bruce Dawson.  The library file,
  17. req.library, should be placed in your libs: directory.  If req.library
  18. is missing, the program will still run but file I/O will be disabled.
  19.  
  20.  
  21. =========================
  22. Contents of this Doc File
  23. =========================
  24.  
  25.  
  26. Part I. Copyright and Distribution
  27.  
  28.  
  29. Part II. User Documentation
  30.  
  31.  1. Quick Start
  32.  
  33.  2. Overview
  34.  3. Nomenclature
  35.  4. Program Operation philosophy
  36.  5. Outline Editor Mode Operation
  37.  6. Collage Editor Mode Operation
  38.  7. Rendering Mode Operation
  39.  8. File I/O Operation
  40.  
  41.  
  42. Part III. Programmer Notes
  43.  
  44.  1. Coordinate system and Coefficient Ranges
  45.  2. Screens and Windows
  46.  3. Outline/Collage Window Colour Scheme
  47.  4. Gadget ID's
  48.  5. Outline Editor
  49.  6. Piece Storage
  50.  7. Collage Display mechanics
  51.  8. Coefficients Window issues
  52.  9. Rendering Mechanics
  53.  10. Compilation and Linking
  54.  11. Known Bugs
  55. ==================================
  56. Part I. Copyright and Distribution
  57. ==================================
  58.  
  59.  
  60. IFSLab is Copyright (C) 1992 by Nathan Zeldes, 16 Bet Hakerem St.,
  61. Jerusalem 96343, Israel.
  62.  
  63. This program is made available in the hope that it will give enjoyment to Amiga
  64. users.  Permission is granted to freely use and distribute IFSLab subject to
  65. the following conditions:
  66.  
  67.   a.  No profit is made on it in any way.  Nominal charges to cover cost of
  68.      media, duplication, shipping, online services, etc are allowed.
  69.   b. The package is distributed in its complete form, consisting of the source
  70.      (files IFSLab.c and IFSLab.h), the executable (IFSLab), this documentation
  71.      file (IFSLab.doc), the requester library files req.library and req.readme,
  72.      and the IFS code files in the subdirectory IFScodes.
  73.   c. None of the files is modified in any way without the written permission of
  74.      the author.
  75.   d. Inclusion of IFSLab in any commercial product is not permitted without the
  76.      written permission of the author.
  77.  
  78. DISCLAIMER:  Although it has been tested extensively, IFSLab is provided
  79.   "as is", without warranty of any kind.  In no event will the author be liable
  80.   for any direct or indirect damage or loss resulting from the use or misuse of
  81.   this program.
  82.  
  83.  
  84. ACKNOWLEDGEMENTS
  85.  
  86. The IFS method has been developed by Dr. Michael Barnsley (see references in
  87. Overview section below).
  88.  
  89. Thanks to C.W. Fox and Bruce Dawson for the file requester from their excellent
  90. freeware requester library for the Amiga.
  91. ===========================
  92. Part II. User Documentation
  93. ===========================
  94.  
  95.  
  96. 1. Quick Start
  97. --------------
  98.  
  99. Part II of this doc file contains detailed instructions. If you want to get the
  100. full benefit from this program, you should read it all.  The present section is
  101. for the impatient and/or knowledgeable, who want to try the program out right
  102. away!
  103.  
  104. To run IFSLab, you should first copy the file req.library to your libs:
  105. directory (if you don't have it there already).  If you don't, you will still
  106. be able to run IFSLab, but without the ability to load or save files.
  107.  
  108. Start IFSLab by double clicking its icon, or by typing its name in the Shell or
  109. CLI.  Now select the HELP item from the ABOUT menu, and read the brief
  110. instructions it will give you on-screen.  Then select the DEMO item from the
  111. ABOUT menu.  This will launch a demo of generation of the Sierpinski Triangle,
  112. and illustrate the operation of the program.
  113.  
  114. Next you may want to load some IFS codes by the PROJECT/LOAD FILE/IFS menuitem;
  115. some interesting codes found by the author and by others are in the directory
  116. 'IFScodes'.  When a code has been loaded, select the RENDER/START menuitem to
  117. render its attractor.  After you've tried the codes in the files, you're on
  118. your own - try to build your own IFS codes (here you will probably HAVE to read
  119. the instructions), and have fun!
  120.  
  121.  
  122. 2. Overview
  123. -----------
  124.  
  125. This program implements the IFS algorithm described by Barnsley and Sloan to
  126. allow the design and rendering of fractals in a user-friendly environment.  It
  127. provides for the convenient sketching of approximate image outlines by a
  128. paint-program-like mouse-driven user interface, and for definition of IFS Codes
  129. either from a mouse-driven Collage editor or by numeric entry from the
  130. keyboard.  The Attractors of the resultant IFS Codes can be rendered in black
  131. and white or in grayscale, in a user-defined resolution.  Outlines, IFS Codes
  132. and rendered Images can be saved to or read from disk.  The program has a very
  133. flexible IFS loader, which can read IFS code files generated by most other IFS
  134. programs, extracting the relevant codes and converting them as necessary to fit
  135. this program's conventions.  On reading in a file, or at the user's command at
  136. any time, the program will generate a collage for the current IFS (using its
  137. attractor as the Outline).  A facility for modifying an IFS to fit in the full
  138. screen size is also provided.
  139.  
  140. For more detailed information on the theory and use of IFS, refer to:
  141.  
  142.  a. M. Barnsley and A. Sloan:  A Better Way to Compress Images, BYTE, Jan.  88.
  143.  b. H.O. Peitgen and D. Saupe, eds.:  The Science of Fractal Images, Chapter 5.
  144.     Springer-Verlag, 1988.
  145.  c. M.Barnsley:  Fractals Everywhere, Academic Press, 1988.
  146.  
  147. 3. Nomenclature
  148. ---------------
  149.  
  150. In this document and program, the following terminology is used:
  151.  
  152. * Outline - a rough sketch of the fractal-to-be, used as the basis for the
  153.   reduced images that form the Collage.
  154.  
  155. * Transformation - a contractive affine transformation.
  156.  
  157. * IFS (Iterated Function System), used interchangeably with 'IFS Code' -
  158.   a set of N Transformations and their associated probabilities.
  159.  
  160. * Attractor - the exact fractal image represented by the IFS.
  161.  
  162. * Density - A parameter assigned to each transformation which describes
  163.   its probability per unit area, i.e. how bright it will appear in the
  164.   rendering process relative to the other transformations. See details in
  165.   section 5, "Collage Editor Mode Operation", under "Definition of Piece
  166.   Probabilities".
  167.  
  168. * Collage - an IFS, represented graphically as an overlay of the Transformed
  169.   Outlines on the original Outline.
  170.  
  171. * Piece - A single transformed image of the outline.  The Collage is made from
  172.   a set of up to 20 Pieces, representing the transformations in the IFS.
  173.  
  174. * Image - the reconstructed image (Attractor), as rendered from the IFS using
  175.   the random iteration algorithm.
  176.  
  177. * Coordinate Convention: The Top Left corner of the display area is defined as
  178.   the Origin, (0,0), with the positive X axis going to the right and the 
  179.   positive Y axis going downward. The full display area is defined as 1 unit
  180.   in width and 0.6775 units in height (for purposes of the translation
  181.   coefficients). This convention makes the rectangular window used for editing
  182.   represent the top 2/3 (approximately) of a 1x1 square area in the Real plane.
  183.  
  184.  
  185. 4. Program Operation philosophy
  186. -------------------------------
  187.  
  188. IFS Lab differs from some other IFS programs in that it focuses on the Collage
  189. Theorem, i.e.  on the fact that in an IFS, the attractor is covered exactly by
  190. its transformed copies.  Thus, IFS Lab will allow you to create the Collage
  191. directly, Jigsaw-puzzle style, from actual reduced/deformed images of the
  192. Outline that you can manipulate graphically with t